package pers.rcklos.myserver.biz;

import java.util.ArrayList;

import pers.rcklos.myserver.entity.SpUser;

public interface UserBiz {
	/**
	 * 查询所有用户
	 * @return 			以线性表形式返回0..*份用户数据 */
	ArrayList<SpUser> queryAllUsers();
	
	/**
	 * 以id的升序查询一页的用户
	 * @param startUid	起始id
	 * @param amount	一页的数量
	 * @return			以线性表形式返回0..*份用户数据
	 */
	ArrayList<SpUser> queryPageOfUsers(int skipPage, int pageSize);
	
	/**
	 * 查询用户
	 * @param uid			用户id
	 * @return				返回用户对象或Null
	 */
	SpUser queryUserByUid(int uid);
	
	/**
	 * 更新用户信息
	 * @param user			原来的用户信息
	 * @param newUserInfo	新修改的用户信息
	 * @return
	 */
	boolean modifyUserInfo(SpUser user, SpUser newUserInfo);
	
	/**
	 * 用户登录
	 * @param userName		用户名
	 * @param userPassword	密码
	 * @return				返回用户对象或null
	 */
	SpUser userLogin(String userName, String userPassword);
	
	/**
	 * 用户注册
	 * @param userName		用户名
	 * @param userPassowrd	密码
	 * @return				返回注册成功与否
	 */
	boolean userRegister(String userName, String userPassowrd, String userPhone);
	
	/**
	 * 修改用户昵称
	 * @param user			含有更新后信息的用户对象
	 * @return				返回更新是否成功
	 */
	boolean userModifyNickName(SpUser user);
	
	/**
	 * 修改密码
	 * @param userName		用户名称
	 * @param newPhone		用户电话，验证用
	 * @return
	 */
	boolean userModifyPassword(String userName, String userPassword, String phone);
	
	/**
	 * 添加/修改用户电话
	 * @param user			含有更新后信息的用户对象
	 * @return				返回更新是否成功
	 */
	boolean userAddPhone(SpUser user);
	
	/**
	 * 删除用户
	 * @param uid			用户id
	 * @return				返回删除是否成功
	 */
	boolean deleteUser(int uid);
}
